{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5fbc2d16-59f9-4be3-b93e-1a5440c7efd0",
   "metadata": {},
   "source": [
    "# Tutorial 3 - Physics-Informed Neural Networks"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1afe6a1e-3ab4-4f3f-ad47-f6cd66419504",
   "metadata": {},
   "source": [
    "One of the areas where KANs have found a lot of applications is PDE solving by replacing MLPs as the underlying architecture for Physics-Informed Neural Networks (PINNs)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0a2ef2a6-f681-427f-8252-ade2111ce0e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "from jaxkan.KAN import KAN\n",
    "\n",
    "import jax\n",
    "import jax.numpy as jnp\n",
    "\n",
    "from jaxkan.utils.PIKAN import sobol_sample, gradf\n",
    "\n",
    "from flax import nnx\n",
    "import optax\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60e70a5d-0340-4bdc-af4e-150d0098a87e",
   "metadata": {},
   "source": [
    "## Data Generation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "166ad90d-430e-45ca-86a8-e6e4dbc1c943",
   "metadata": {},
   "source": [
    "For the purposes of this example, we will be solving Burgers' Equation,\n",
    "\n",
    "$$ \\frac{\\partial u}{\\partial t} + u\\frac{\\partial u}{\\partial x} - \\nu \\frac{\\partial^2 u}{\\partial x^2} = 0,$$\n",
    "\n",
    "for $\\nu = \\pi/100$ in the $\\Omega = [0,1]\\times [-1, 1]$ domain, subject to the boundary conditions\n",
    "\n",
    "$$ u\\left(t=0, x\\right) = -\\sin\\left(\\pi x\\right), $$\n",
    "\n",
    "$$ u\\left(t, x=-1\\right) = u\\left(t, x=1\\right) = 0. $$\n",
    "\n",
    "To this end, we must first define appropriate collocation points. Note that in the following we are using the `sobol_sample` method from `jaxkan.utils.PIKAN`, to perform Sobol sampling for the collocation points used to enforce the PDE."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b986e75a-6d4a-402f-bea7-36d13f4a7866",
   "metadata": {},
   "outputs": [],
   "source": [
    "seed = 42\n",
    "\n",
    "# Generate Collocation points for PDE\n",
    "N = 2**12\n",
    "collocs = jnp.array(sobol_sample(np.array([0,-1]), np.array([1,1]), N, seed)) # (4096, 2)\n",
    "\n",
    "# Generate Collocation points for BCs\n",
    "N = 2**6\n",
    "\n",
    "BC1_colloc = jnp.array(sobol_sample(np.array([0,-1]), np.array([0,1]), N)) # (64, 2)\n",
    "BC1_data = - jnp.sin(np.pi*BC1_colloc[:,1]).reshape(-1,1) # (64, 1)\n",
    "\n",
    "BC2_colloc = jnp.array(sobol_sample(np.array([0,-1]), np.array([1,-1]), N)) # (64, 2)\n",
    "BC2_data = jnp.zeros(BC2_colloc.shape[0]).reshape(-1,1) # (64, 1)\n",
    "\n",
    "BC3_colloc = jnp.array(sobol_sample(np.array([0,1]), np.array([1,1]), N)) # (64, 2)\n",
    "BC3_data = jnp.zeros(BC3_colloc.shape[0]).reshape(-1,1) # (64, 1)\n",
    "\n",
    "# Create lists for BCs\n",
    "bc_collocs = [BC1_colloc, BC2_colloc, BC3_colloc]\n",
    "bc_data = [BC1_data, BC2_data, BC3_data]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e9d9bba-71e2-4d5b-95b1-36167fb70c1a",
   "metadata": {},
   "source": [
    "## KAN Model"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2fd54c6c-3d28-4864-af38-3b22875d0f0a",
   "metadata": {},
   "source": [
    "We covered KAN Model selection in the first tutorial, so feel free to refer to it for more info. For this example, we will be using a Modified Chebychev KAN Layer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b350b56f-5daa-411f-9090-b544760c34ef",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[38;2;79;201;177mKAN\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 337 (1.3 KB), RngState: 6 (36 B), Total: 343 (1.4 KB)\u001b[0m\n",
      "  \u001b[38;2;156;220;254mlayer_type\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'chebyshev'\u001b[0m,\n",
      "  \u001b[38;2;156;220;254mlayers\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m[\u001b[0m\u001b[38;2;79;201;177mChebyshevLayer\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 78 (312 B), RngState: 2 (12 B), Total: 80 (324 B)\u001b[0m\n",
      "    \u001b[38;2;156;220;254mn_in\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m2\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mn_out\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mD\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m5\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mflavor\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'modified'\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mresidual\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mrngs\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngs\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mdefault\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngStream\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "        \u001b[38;2;156;220;254mkey\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngKey\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (8 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray((), dtype=key<fry>) overlaying:\n",
      "          [ 0 42],\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "        \u001b[38;2;156;220;254mcount\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngCount\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray(2, dtype=uint32),\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m\n",
      "      \u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mbias\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 6 (24 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_ext\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 12 (48 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m2\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_basis\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 60 (240 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m2\u001b[0m, \u001b[38;2;182;207;169m5\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m\n",
      "  \u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;79;201;177mChebyshevLayer\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 222 (888 B), RngState: 2 (12 B), Total: 224 (900 B)\u001b[0m\n",
      "    \u001b[38;2;156;220;254mn_in\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mn_out\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mD\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m5\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mflavor\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'modified'\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mresidual\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mrngs\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngs\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mdefault\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngStream\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "        \u001b[38;2;156;220;254mkey\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngKey\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (8 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray((), dtype=key<fry>) overlaying:\n",
      "          [ 0 42],\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "        \u001b[38;2;156;220;254mcount\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngCount\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray(2, dtype=uint32),\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m\n",
      "      \u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mbias\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 6 (24 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_ext\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 36 (144 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m6\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_basis\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 180 (720 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m5\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m\n",
      "  \u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;79;201;177mChebyshevLayer\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # Param: 37 (148 B), RngState: 2 (12 B), Total: 39 (160 B)\u001b[0m\n",
      "    \u001b[38;2;156;220;254mn_in\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m6\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mn_out\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m1\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mD\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;182;207;169m5\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mflavor\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m'modified'\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mresidual\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;86;156;214mNone\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mrngs\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngs\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mdefault\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngStream\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # RngState: 2 (12 B)\u001b[0m\n",
      "        \u001b[38;2;156;220;254mkey\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngKey\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (8 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray((), dtype=key<fry>) overlaying:\n",
      "          [ 0 42],\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "        \u001b[38;2;156;220;254mcount\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mRngCount\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "          \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray(2, dtype=uint32),\n",
      "          \u001b[38;2;156;220;254mtag\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;207;144;120m\"'default'\"\u001b[0m\n",
      "        \u001b[38;2;255;213;3m)\u001b[0m\n",
      "      \u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mbias\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 1 (4 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mArray([0.], dtype=float32)\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_ext\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 6 (24 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m1\u001b[0m, \u001b[38;2;182;207;169m6\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m,\n",
      "    \u001b[38;2;156;220;254mc_basis\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mParam\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;105;105;105m # 30 (120 B)\u001b[0m\n",
      "      \u001b[38;2;156;220;254mvalue\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;79;201;177mArray\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;156;220;254mshape\u001b[0m\u001b[38;2;212;212;212m=\u001b[0m\u001b[38;2;255;213;3m(\u001b[0m\u001b[38;2;182;207;169m1\u001b[0m, \u001b[38;2;182;207;169m6\u001b[0m, \u001b[38;2;182;207;169m5\u001b[0m\u001b[38;2;255;213;3m)\u001b[0m, \u001b[38;2;156;220;254mdtype\u001b[0m\u001b[38;2;212;212;212m=\u001b[0mdtype('float32')\u001b[38;2;255;213;3m)\u001b[0m\n",
      "    \u001b[38;2;255;213;3m)\u001b[0m\n",
      "  \u001b[38;2;255;213;3m)\u001b[0m\u001b[38;2;255;213;3m]\u001b[0m\n",
      "\u001b[38;2;255;213;3m)\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "# Initialize a KAN model\n",
    "n_in = collocs.shape[1]\n",
    "n_out = 1\n",
    "n_hidden = 6\n",
    "\n",
    "layer_dims = [n_in, n_hidden, n_hidden, n_out]\n",
    "req_params = {'D': 5, 'flavor':'modified', 'external_weights':True}\n",
    "\n",
    "model = KAN(layer_dims = layer_dims,\n",
    "            layer_type = 'chebyshev',\n",
    "            required_parameters = req_params,\n",
    "            seed = seed\n",
    "           )\n",
    "\n",
    "print(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f681d135-c885-4e59-87d7-1ea16a157c50",
   "metadata": {},
   "source": [
    "## Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6723a412-c313-453c-aa88-9274687ee54e",
   "metadata": {},
   "outputs": [],
   "source": [
    "opt_type = optax.adam(learning_rate=0.001)\n",
    "\n",
    "optimizer = nnx.Optimizer(model, opt_type)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eaac2ddc-ad53-40db-804b-7f54f3000476",
   "metadata": {},
   "source": [
    "This problem does not correspond to supervised training. We simply need to define a loss term that enforces the PDE as well as a loss term that enforces the boundary conditions. Note that we utilize the `gradf` method from `jaxkan.utils.PIKAN`, which provides a straightforward way of defining derivatives of arbitrary order for $u$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "f18ab849-3c05-418a-a30b-3928f77c332d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# PDE Loss\n",
    "def pde_loss(model, collocs):\n",
    "    # Eq. parameter\n",
    "    v = jnp.array(0.01/jnp.pi, dtype=float)\n",
    "\n",
    "    def u(x):\n",
    "        y = model(x)\n",
    "        return y\n",
    "        \n",
    "    # Physics Loss Terms\n",
    "    u_t = gradf(u, 0, 1)\n",
    "    u_x = gradf(u, 1, 1)\n",
    "    u_xx = gradf(u, 1, 2)\n",
    "    \n",
    "    # Residual\n",
    "    pde_res = u_t(collocs) + model(collocs)*u_x(collocs) - v*u_xx(collocs)\n",
    "    \n",
    "    return pde_res\n",
    "\n",
    "# Define train loop\n",
    "@nnx.jit\n",
    "def train_step(model, optimizer, collocs, bc_collocs, bc_data):\n",
    "\n",
    "    def loss_fn(model):\n",
    "        pde_res = pde_loss(model, collocs)\n",
    "        total_loss = jnp.mean((pde_res)**2)\n",
    "\n",
    "        # Boundary losses\n",
    "        for idx, colloc in enumerate(bc_collocs):\n",
    "            # Residual = Model's prediction - Ground Truth\n",
    "            residual = model(colloc)\n",
    "            residual -= bc_data[idx]\n",
    "            # Loss\n",
    "            total_loss += jnp.mean(residual**2)\n",
    "\n",
    "        return total_loss\n",
    "    \n",
    "    loss, grads = nnx.value_and_grad(loss_fn)(model)\n",
    "    optimizer.update(grads)\n",
    "    \n",
    "    return loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "b06282a5-8899-4801-9c9e-d8b73b55d74a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize train_losses\n",
    "num_epochs = 5000\n",
    "train_losses = jnp.zeros((num_epochs,))\n",
    "\n",
    "for epoch in range(num_epochs):\n",
    "    # Calculate the loss\n",
    "    loss = train_step(model, optimizer, collocs, bc_collocs, bc_data)\n",
    "    \n",
    "    # Append the loss\n",
    "    train_losses = train_losses.at[epoch].set(loss)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "faab949e-dadb-4cec-bc13-63b10cb609c5",
   "metadata": {},
   "source": [
    "## Evaluation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "86630d29-9b9f-452a-b2f1-399b02768829",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnAAAAGJCAYAAAAKZg7vAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeSdJREFUeJzt3XlYXOX5//H3wDAz7EvYQoBA2AMhBAgY6/o1VeNS158aU5sYv7VWbW3VtnZxba2tttaqqbZucan7/nWriRq1LgRCCCEhEAgQEsIW9h1mzu8PwjEIIYQwnIdwv66LS2bmMHNzPofjnXPO8xyTpmkaQgghhBBi2nAxugAhhBBCCHFkpIETQgghhJhmpIETQgghhJhmpIETQgghhJhmpIETQgghhJhmpIETQgghhJhmpIETQgghhJhmpIETQgghhJhmpIETQgghhJhmpIETQgyzatUqoqKiJvSzd9xxByaTaXILEuIwhra7xsZGo0sRYspIAyfENGEymcb1tWHDBqNLNcSqVavw8vIyuoxx0TSNZ599lpNOOgk/Pz88PDxYsGABd911F52dnUaXN8JQg3Sor9raWqNLFGLGMRtdgBBifJ599tlhj5955hnWrVs34vmkpKSj+pzHHnsMh8MxoZ/93e9+xy233HJUn3+ss9vtXH755bz88suceOKJ3HHHHXh4ePD5559z55138sorr7B+/XpCQkKMLnWERx55ZNQm2c/Pb+qLEWKGkwZOiGni+9///rDHX3/9NevWrRvx/Ld1dXXh4eEx7s9xc3ObUH0AZrMZs1l2K2O59957efnll7n55pu577779OevvvpqLrnkEs4//3xWrVrF+++/P6V1jWc7ufjiiwkMDJyiioQQY5FTqEIcQ0455RRSUlLYtGkTJ510Eh4eHvzmN78B4K233uLss88mLCwMq9VKTEwMv//977Hb7cPe49vXwFVWVmIymfjLX/7Cv/71L2JiYrBarSxevJjc3NxhPzvaNXAmk4nrr7+eN998k5SUFKxWK8nJyXzwwQcj6t+wYQOZmZnYbDZiYmL45z//OenX1b3yyitkZGTg7u5OYGAg3//+99m7d++wZWpra7nyyisJDw/HarUye/ZszjvvPCorK/Vl8vLyOOOMMwgMDMTd3Z3o6GhWr1495md3d3dz3333ER8fzz333DPi9XPPPZeVK1fywQcf8PXXXwNwzjnnMG/evFHfb8mSJWRmZg577rnnntN/v4CAAC677DKqq6uHLTPWdnI0NmzYgMlk4qWXXuI3v/kNoaGheHp68r3vfW9EDTC+LAB27NjBJZdcQlBQEO7u7iQkJPDb3/52xHItLS2sWrUKPz8/fH19ufLKK+nq6hq2zLp16zjhhBPw8/PDy8uLhISESfndhZhq8k9lIY4x+/fvZ9myZVx22WV8//vf10/FrV27Fi8vL2688Ua8vLz4+OOPue2222hraxt2JOhQnn/+edrb2/nRj36EyWTi3nvv5cILL2TXrl2HPWr33//+l9dff51rr70Wb29vHnzwQS666CJ2797NrFmzANi8eTNnnnkms2fP5s4778Rut3PXXXcRFBR09CvlgLVr13LllVeyePFi7rnnHurq6vj73//OF198webNm/VTgRdddBHbtm3jJz/5CVFRUdTX17Nu3Tp2796tPz799NMJCgrilltuwc/Pj8rKSl5//fXDrofm5mZuuOGGQx6p/MEPfsBTTz3FO++8w3HHHcell17KD37wA3Jzc1m8eLG+XFVVFV9//fWw7O6++25uvfVWLrnkEv73f/+XhoYGHnroIU466aRhvx8cejsZS1NT04jnzGbziFOod999NyaTiV/96lfU19fzwAMPsHTpUgoKCnB3dwfGn0VhYSEnnngibm5uXH311URFRVFeXs7//d//cffddw/73EsuuYTo6Gjuuece8vPzefzxxwkODubPf/4zANu2beOcc84hNTWVu+66C6vVSllZGV988cVhf3chlKMJIaal6667Tvv2n/DJJ5+sAdqjjz46Yvmurq4Rz/3oRz/SPDw8tJ6eHv25lStXanPnztUfV1RUaIA2a9YsrampSX/+rbfe0gDt//7v//Tnbr/99hE1AZrFYtHKysr057Zs2aIB2kMPPaQ/d+6552oeHh7a3r179ed27typmc3mEe85mpUrV2qenp6HfL2vr08LDg7WUlJStO7ubv35d955RwO02267TdM0TWtubtYA7b777jvke73xxhsaoOXm5h62roM98MADGqC98cYbh1ymqalJA7QLL7xQ0zRNa21t1axWq3bTTTcNW+7ee+/VTCaTVlVVpWmaplVWVmqurq7a3XffPWy5rVu3amazedjzY20noxnKdbSvhIQEfblPPvlEA7Q5c+ZobW1t+vMvv/yyBmh///vfNU0bfxaapmknnXSS5u3trf+eQxwOx4j6Vq9ePWyZCy64QJs1a5b++G9/+5sGaA0NDeP6vYVQmZxCFeIYY7VaufLKK0c8P3TkA6C9vZ3GxkZOPPFEurq62LFjx2Hf99JLL8Xf319/fOKJJwKwa9euw/7s0qVLiYmJ0R+npqbi4+Oj/6zdbmf9+vWcf/75hIWF6cvFxsaybNmyw77/eOTl5VFfX8+1116LzWbTnz/77LNJTEzk3XffBQbXk8ViYcOGDTQ3N4/6XkNHh9555x36+/vHXUN7ezsA3t7eh1xm6LW2tjYAfHx8WLZsGS+//DKapunLvfTSSxx33HFERkYC8Prrr+NwOLjkkktobGzUv0JDQ4mLi+OTTz4Z9jmH2k7G8tprr7Fu3bphX0899dSI5X7wgx8M+x0vvvhiZs+ezXvvvQeMP4uGhgY+++wzVq9erf+eQ0Y7rX7NNdcMe3ziiSeyf/9+fV0O5fbWW29NeKCOEKqQBk6IY8ycOXOwWCwjnt+2bRsXXHABvr6++Pj4EBQUpA+AaG1tPez7fvt/oEPN3KGanLF+dujnh362vr6e7u5uYmNjRyw32nMTUVVVBUBCQsKI1xITE/XXrVYrf/7zn3n//fcJCQnhpJNO4t577x02VcbJJ5/MRRddxJ133klgYCDnnXceTz31FL29vWPWMNTUDDVyoxmtybv00kuprq7mq6++AqC8vJxNmzZx6aWX6svs3LkTTdOIi4sjKCho2FdxcTH19fXDPudQ28lYTjrpJJYuXTrsa8mSJSOWi4uLG/bYZDIRGxurX0M43iyGGvyUlJRx1Xe4bfTSSy/lO9/5Dv/7v/9LSEgIl112GS+//LI0c2JakgZOiGPMwUfahrS0tHDyySezZcsW7rrrLv7v//6PdevW6dcGjed/YK6urqM+f/BRIWf8rBF+9rOfUVpayj333IPNZuPWW28lKSmJzZs3A4MNyauvvspXX33F9ddfz969e1m9ejUZGRl0dHQc8n2HpngpLCw85DJDr82fP19/7txzz8XDw4OXX34ZgJdffhkXFxf+3//7f/oyDocDk8nEBx98MOIo2bp16/jnP/857HNG206mu8NtZ+7u7nz22WesX7+eK664gsLCQi699FK++93vjhjMI4TqpIETYgbYsGED+/fvZ+3atdxwww2cc845LF26dNgpUSMFBwdjs9koKysb8dpoz03E3LlzASgpKRnxWklJif76kJiYGG666SY+/PBDioqK6Ovr469//euwZY477jjuvvtu8vLy+Pe//822bdt48cUXD1nD0OjH559//pANwzPPPAMMjj4d4unpyTnnnMMrr7yCw+HgpZde4sQTTxx2ujkmJgZN04iOjh5xlGzp0qUcd9xxh1lDk2fnzp3DHmuaRllZmT66ebxZDI2+LSoqmrTaXFxcOO2007j//vvZvn07d999Nx9//PGIU8xCqE4aOCFmgKEjEwcf8err6+Mf//iHUSUN4+rqytKlS3nzzTepqanRny8rK5u0+dAyMzMJDg7m0UcfHXaq8/3336e4uJizzz4bGJwPraenZ9jPxsTE4O3trf9cc3PziKOHaWlpAGOeRvXw8ODmm2+mpKRk1Gkw3n33XdauXcsZZ5wxouG69NJLqamp4fHHH2fLli3DTp8CXHjhhbi6unLnnXeOqE3TNPbv33/IuibbM888M+w08auvvsq+ffv06xnHm0VQUBAnnXQSTz75JLt37x72GRM5ejvaKNrx5CaEimQaESFmgOOPPx5/f39WrlzJT3/6U0wmE88++6xSpzDvuOMOPvzwQ77zne/w4x//GLvdzsMPP0xKSgoFBQXjeo/+/n7+8Ic/jHg+ICCAa6+9lj//+c9ceeWVnHzyySxfvlyfuiIqKoqf//znAJSWlnLaaadxySWXMH/+fMxmM2+88QZ1dXVcdtllADz99NP84x//4IILLiAmJob29nYee+wxfHx8OOuss8as8ZZbbmHz5s38+c9/5quvvuKiiy7C3d2d//73vzz33HMkJSXx9NNPj/i5s846C29vb26++WZcXV256KKLhr0eExPDH/7wB379619TWVnJ+eefj7e3NxUVFbzxxhtcffXV3HzzzeNaj4fy6quvjnonhu9+97vDpiEJCAjghBNO4Morr6Suro4HHniA2NhYfvjDHwKDk0WPJwuABx98kBNOOIH09HSuvvpqoqOjqays5N133x33djHkrrvu4rPPPuPss89m7ty51NfX849//IPw8HBOOOGEia0UIYxiyNhXIcRRO9Q0IsnJyaMu/8UXX2jHHXec5u7uroWFhWm//OUvtf/85z8aoH3yySf6coeaRmS0aTUA7fbbb9cfH2oakeuuu27Ez86d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",
      "text/plain": [
       "<Figure size 700x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(7, 4))\n",
    "\n",
    "plt.plot(np.array(train_losses), label='Train Loss', marker='o', color='#25599c', markersize=1)\n",
    "\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.title('Training Loss Over Epochs')\n",
    "plt.yscale('log')\n",
    "\n",
    "plt.legend()\n",
    "plt.grid(True, which='both', linestyle='--', linewidth=0.5) \n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ef7d214-6efa-4124-a587-b47e98cac7d6",
   "metadata": {},
   "source": [
    "The following plot shows the trained neural network on the entire domain, approximating the solution, $u$, of the equation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7798eb68-d6b5-47ec-b845-cf3d60dccf23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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trY2ady6desMAMZll12WdPzGG280ABhvvfVW4thpp51mnHbaaYm/n3jiCQOAsXnz5qS5b7/9tgHAePvttxPHzjnnHOOII46wrHPz5s0GAOOJJ55IHOvXr59RVFRkfP/994lj//znP41wOGyMGzcucay8vNwAYPz6179OsnneeecZhxxySKpLYxiGYdTW1hpFRUXGcccdZ/z444+J46+88ooBwLjjjjssz/P9999v1mbTseZHfn6+sXjx4qSx1HVKdU3Gjx9vADCmTZuWNHbt2rUGAOO6665LOj5hwgQDgFFeXp44dumllxpdunQxduzYkTR2zJgxRtu2bY19+/YlratHjx6JYw307dvXOOecc9JeBzMNNlM9tm/fbhhG4/141VVXJc2/+OKLLc9n/Pjx5D3VcF80xfw8DMMwysrKjB49eiQdO/bYY5PucfP6G14rO/dPw2t35513Jtk84YQTjP79+1vOJQiCe0hoWxCYnHnmmaioqMAvfvEL/POf/8T999+PsrIyHHrooXjppZcS41599VUAwNSpU5Pm33DDDQCA5cuXZ27RALZv345169ZhwoQJ6NChQ+J4nz59cOaZZybW25Qrrrgi6e9TTz0V33//Paqrq1Oe54MPPsC3336Lq666Kin37ZxzzsHRRx/t+HnPnz8fK1euxMqVK/HUU0/h9NNPx2WXXYbnn3/ekV2z92rFihUAgKuuuirpuLmYyjAM/PnPf8bIkSNhGAZ27NiReJSVlWH37t348MMPk+aMHz8erVq1SjrWrl07fPrpp/j3v/+ttP477rgjcV2aPhpe64bX99prr02aZ/aW2qXp82jwFp922mn48ssvsXv3btv2VO4f6j798ssvbZ9bEAR1JLQtCDY48cQT8fzzz6O2thb//Oc/8cILL+B3v/sdzj//fKxbtw69e/fG119/jXA4jF69eiXNLS4uRrt27fD1119ndM0N5zvqqKMs/3bMMcfg9ddftxSZHH744Unj2rdvDwD473//i8LCQtvnOfroo/HOO++oPYEDDBw4MKnY5qKLLsIJJ5yAKVOm4Oc//7lS9W9OTg4OO+ywpGMNr1/37t2Tjptfz++++w67du3CI488gkceeYS0by7CMtsE4tXo5557Ln7yk5/guOOOw/Dhw3HJJZegT58+rOdw/PHHN1v53vB8zOkD1Otkh7///e8oLy9HRUWFJX929+7daNu2rS17du+fgoICdOrUKelY+/bt8d///tfWeQVBcIZ4JAVBgby8PJx44om45557sGDBAtTV1eHZZ59NGmMuTuCQak6mCwgikQh53DCMjK6jOcLhME4//XRs37494c2ze/3y8/OVq6ZjsRgA4Fe/+hXpEVy5ciVOPvnkpDlmbyQQb4OzadMmLFq0CMcddxwee+wx/PSnP8Vjjz2mtC4ncK/fpk2bMHToUOzYsQMPPvggli9fjpUrV+L6668H0Hht3CTVPSoIQmYRj6QgOKTBS7Z9+3YA8aKcWCyGf//73zjmmGMS46qqqrBr1y4cccQRKW01eP7Mu7xQXkyuUG0434YNGyz/9vnnn6Njx45aWt40Pc8ZZ5yR9G8bNmxo9nmrUl9fDwDYs2cPAHvXLxUNr9/mzZtx5JFHJo5v3LgxaVxDBXQ0GmX3wkxFhw4dMHHiREycOBF79uzBz372M8yYMQOXXXaZI7tA4/PZtGlTkrePuh/at29P7jBkvn4vv/wyampq8NJLLyV5r99++23LXJX7NFP3jyAIzhGPpCAwefvtt0mPXEMOWsOX9IgRIwDAsuvMgw8+CADNVss2hB//+te/Jo5Fo1EydHrQQQexctG6dOmCfv36YcmSJUki4ZNPPsEbb7yRWK9TBgwYgKKiIixcuDCpzdFrr72G9evXO64SNlNXV4c33ngDeXl5CcF+xBFHIBKJJF0/IN4Um0tZWRk5x7x7USQSwejRo/HnP/8Zn3zyicXOd999xzrf999/n/R3mzZt0KtXr7StoricffbZAICHH3446Ti1K1LPnj2xe/du/Otf/0oc2759u6XTQIM3sOn7Yffu3XjiiScsNg866CDW9peZvn8EQdCDeCQFgck111yDffv24bzzzsPRRx+N2tpavPvuu3jmmWfQrVs3TJw4EQDQt29fjB8/Ho888gh27dqF0047De+99x6WLFmCUaNG4fTTT095jmOPPRYnnXQSpk+fjp07d6JDhw5YtmxZwvPWlP79++OZZ57B1KlTceKJJ6JNmzYYOXIkafeBBx7A2WefjUGDBuHSSy9NtP9p27atpS+iKrm5ubjvvvswceJEnHbaabjooosS7Vu6deuWCHuq8tprr+Hzzz8HEM89XLp0Kf79739j2rRpibzNtm3b4pe//CXmzZuHUCiEnj174pVXXrHVML5///4YPXo05s6di++//z7R/ueLL74AkOxhu/fee/H222+jtLQUkyZNQu/evbFz5058+OGHePPNN7Fz58605+vduzeGDBmC/v37o0OHDvjggw/w3HPPYcqUKaz1/u1vf8P+/fstx/v06YM+ffqgX79+uOiii/CHP/wBu3fvxuDBg7Fq1SqLhxUAxowZg5tvvhnnnXcerr32Wuzbtw8LFizAT37yk6TCobPOOgt5eXkYOXIkLr/8cuzZswePPvooioqKEp75ptdzwYIFuOuuu9CrVy8UFRVZPI6A+/ePIAgu4WnNuCAEiNdee8349a9/bRx99NFGmzZtjLy8PKNXr17GNddcY1RVVSWNraurM2bOnGl0797dyM3NNUpKSozp06cb+/fvTxpnbv9jGIaxadMmY9iwYUZ+fr7RuXNn45ZbbjFWrlxpaWuzZ88e4+KLLzbatWtnAEi0baFa3RiGYbz55pvGySefbLRq1cooLCw0Ro4caXz22WdJYxravHz33XdJx1O1JaJ45plnjBNOOMHIz883OnToYIwdO9b45ptvSHuq7X8KCgqMfv36GQsWLDBisVjS+O+++84YPXq00bp1a6N9+/bG5ZdfbnzyySdk+5+DDjqIPOfevXuNq6++2ujQoYPRpk0bY9SoUcaGDRsMAMa9996bNLaqqsq4+uqrjZKSEiM3N9coLi42hg4dajzyyCOJMQ2tbp599lnLue666y5j4MCBRrt27YxWrVoZRx99tHH33Xdb2kqZSdf+p2lbnx9//NG49tprjUMOOcQ46KCDjJEjRxpbt261jDOMeJur4447zsjLyzOOOuoo46mnniLb/7z00ktGnz59jIKCAqNbt27GfffdZyxatMhyn1RWVhrnnHOOcfDBBxsAEvd7qlZNnPsn1WtHrVMQBHcJGYaPsucFQRB8yrp163DCCSfgqaeeSuyAE3RCoRDKy8u1eaUFQWh5SI6kIAiCiR9//NFybO7cuQiHw/jZz37mwYoEQRD8ieRICoIgmLj//vuxdu1anH766cjJycFrr72G1157DZMnT0ZJSYnXyxMEQfANIiQFQRBMDB48GCtXrsSsWbOwZ88eHH744ZgxY0Ziv2hBEAQhTqBC23/9618xcuRIdO3aFaFQCC+++GLaOatXr8ZPf/pT5Ofno1evXli8eLFlzPz589GtWzcUFBSgtLQU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a1fLh47QPCrX/p133sHjjz+OdevWZWCF2YnKdf/yyy/x1ltvYezYsXj11VexceNGXHXVVairq0N5eXkmlp0VqFz7iy++GDt27MApp5wCwzBQX1+PK664ArfccksmltxiSfUdW11djR9//BGtWrXyaGUtC/FIClnPvffei2XLluGFF15I2h5T0M8PP/yASy65BI8++ig6duzo9XJaFLFYDEVFRXjkkUfQv39/XHjhhbj11luxcOFCr5eW9axevRr33HMP/vCHP+DDDz/E888/j+XLl2PWrFleL00QXEc8kkw6duyISCSCqqqqpONVVVUoLi4m5xQXF9saL9CoXPsG5syZg3vvvRdvvvkm+vTp4+YysxK7137Tpk346quvMHLkyMSxWCwGAMjJycGGDRvQs2dPdxedBajc8126dEFubi4ikUji2DHHHIPKykrU1tYiLy/P1TVnCyrX/vbbb8cll1yCyy67DABw/PHHY+/evZg8eTJuvfVWhMPis3GDVN+xhYWF4o3MIHJ3M8nLy0P//v2xatWqxLFYLIZVq1Zh0KBB5JxBgwYljQeAlStXphwv0KhcewC4//77MWvWLKxYsQIDBgzIxFKzDrvX/uijj8bHH3+MdevWJR6/+MUvcPrpp2PdunUoKSnJ5PIDi8o9f/LJJ2Pjxo0J4Q4AX3zxBbp06SIi0gYq137fvn0Wsdgg6A3Zhdg15DvWJ3hd7RMkli1bZuTn5xuLFy82PvvsM2Py5MlGu3btjMrKSsMwDOOSSy4xpk2blhj/97//3cjJyTHmzJljrF+/3igvL5f2P4rYvfb33nuvkZeXZzz33HPG9u3bE48ffvjBq6cQWOxeezNSta2G3eu+ZcsW4+CDDzamTJlibNiwwXjllVeMoqIi46677vLqKQQWu9e+vLzcOPjgg40//vGPxpdffmm88cYbRs+ePY0LLrjAq6cQSH744Qfjo48+Mj766CMDgPHggw8aH330kfH1118bhmEY06ZNMy655JLE+Ib2P//7v/9rrF+/3pg/f760//EAEZI2mTdvnnH44YcbeXl5xsCBA41//OMfiX877bTTjPHjxyeN/9Of/mT85Cc/MfLy8oxjjz3WWL58eYZXnD3YufZHHHGEAcDyKC8vz/zCswC7931TREiqY/e6v/vuu0ZpaamRn59v9OjRw7j77ruN+vr6DK86O7Bz7evq6owZM2YYPXv2NAoKCoySkhLjqquuMv773/9mfuEB5u233yY/txuu9fjx443TTjvNMqdfv35GXl6e0aNHD+OJJ57I+LpbOiHDEL+7IAiCIAiCYB/JkRQEQRAEQRCUECEpCIIgCIIgKCFCUhAEQRAEQVBChKQgCIIgCIKghAhJQRAEQRAEQQkRkoIgCIIgCIISIiQFQRAEQRAEJURICoIgCIIgCEqIkBQEQRAEQRCUECEpCEKLZciQIbjuuuu8XoYgCEJgESEpCIIgCIIgKCF7bQuC0CKZMGEClixZknRs8+bN6NatmzcLEgRBCCAiJAVBaJHs3r0bZ599No477jjceeedAIBOnTohEol4vDJBEITgkOP1AgRBELygbdu2yMvLQ+vWrVFcXOz1cgRBEAKJ5EgKgiAIgiAISoiQFARBEARBEJQQISkIQoslLy8P0WjU62UIgiAEFhGSgiC0WLp164Y1a9bgq6++wo4dOxCLxbxekiAIQqAQISkIQovlxhtvRCQSQe/evdGpUyds2bLF6yUJgiAECmn/IwiCIAiCICghHklBEARBEARBCRGSgiAIgiAIghIiJAVBEARBEAQlREgKgiAIgiAISoiQFARBEARBEJQQISkIgiAIgiAoIUJSEARBEARBUEKEpCAIgiAIgqCECElBEARBEARBCRGSgiAIgiAIghIiJAVBEARBEAQlREgKgiAIgiAISvz/PI2HCyisu9oAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "N_t, N_x = 100, 256\n",
    "\n",
    "t = np.linspace(0.0, 1.0, N_t)\n",
    "x = np.linspace(-1.0, 1.0, N_x)\n",
    "T, X = np.meshgrid(t, x, indexing='ij')\n",
    "coords = np.stack([T.flatten(), X.flatten()], axis=1)\n",
    "\n",
    "output = model(jnp.array(coords))\n",
    "resplot = np.array(output).reshape(N_t, N_x)\n",
    "\n",
    "plt.figure(figsize=(7, 4))\n",
    "plt.pcolormesh(T, X, resplot, shading='auto', cmap='Spectral_r')\n",
    "plt.colorbar()\n",
    "\n",
    "plt.title('Solution of Burgers Equation')\n",
    "plt.xlabel('t')\n",
    "\n",
    "plt.ylabel('x')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "88cc341a-8869-4dd9-be77-ef9bf2d8b5c1",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
